home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / gemfst18.lzh / GEMFAST.H < prev    next >
C/C++ Source or Header  |  1992-12-06  |  30KB  |  735 lines

  1. /* tab expansion/compression should be set to 4 */
  2. /**************************************************************************
  3.  * GEMFAST.H - Header file for GEM programming.
  4.  *
  5.  *  This header file contains items compatible with both GEMDEFS and OBDEFS
  6.  *  from the Alcyon system.  Note that there are no 'extern' definitions
  7.  *  for the GEM functions, because they all return a signed int and work
  8.  *  fine as autodefined functions.
  9.  *
  10.  * Maintenance:
  11.  *  02/29/92 - v1.8
  12.  *             > Added new options for new utility functions.
  13.  *             > Added extern declarations for all global vars.
  14.  *             > Added macro to map frm_dsdial() to frm_dsdialog() with
  15.  *               parms in the new order.
  16.  *             > Added macros mapping appl_init/exit to apl_xinit/xexit,
  17.  *               so that all aps automatically get new extended init that
  18.  *               fills in the new global vars.  New utils REQUIRE that
  19.  *               these vars be init'd; think twice before changing this!
  20.  *             > Changed FDADDR datatype from char* to void*.
  21.  *  05/26/90 - v1.4
  22.  *             > Added RSHDR structure for imbedded resource support.
  23.  *             > Fixed all structures which defined pointers as 'long'...
  24.  *               - ICONBLK ib_pmask, ib_pdata, ib_ptext
  25.  *               - BITBLK  bi_pdata
  26.  *               - USERBLK ub_code
  27.  *               - PARMBLK pb_tree
  28.  *               All of these structure elements now define the proper ptr.
  29.  *             > Added AESUTIL_A, AESFAST_A and VDIFAST_A symbols.  This
  30.  *               allows specific indication of the presence or abscence of
  31.  *               the bindings libraries, allowing a programmer to use the
  32.  *               GEMFAST.H header without using the rest of GemFast.  This
  33.  *               also allows conditional compilation code to be more
  34.  *               specific:  it can now test for the presence of the header
  35.  *               file (and handle the differences in the structure defs),
  36.  *               and it can separately test for the presence of the libs,
  37.  *               and the extended functions available therein.
  38.  *  12/03/89 - v1.3
  39.  *             > Renamed a lot of functions, a name compatibility block was
  40.  *               added at the end of this file to smooth the transition.
  41.  *             > Added NO_OBJECT, MU_MENTRY, MU_MEXIT to defines.
  42.  *             > Added XMULTI struct, even though it really belongs to v2.0
  43.  *************************************************************************/
  44.  
  45. #pragma idempotent              /* sozobon: prevent multiple inclusion */
  46.  
  47. #ifndef GEMFAST_H               /* Prevent multiple inclusion */
  48.  
  49. #define GEMFAST_H       1       /* Tell the world GEMFAST header is used */
  50. #define GEMF_VERSION    0x0180  /* Tell the world we are v1.80           */
  51.  
  52. #define AESUTIL_A       1       /* Tell the world AESFAST utils  available */
  53. #define AESFAST_A       1       /* Tell the world AESFAST lib is available */
  54. #define VDIFAST_A       1       /* Tell the world VDIFAST lib is available */
  55.  
  56.                                 /* VDI inside fill styles  */
  57. #define IS_HOLLOW   0
  58. #define IS_SOLID    1
  59. #define IS_PATTERN  2
  60. #define IS_HATCH    3
  61. #define IS_UDPTRN   4
  62.                                 /* VDI inside fill patterns  */
  63. #define IP_HOLLOW   0
  64. #define IP_1PTRN    1
  65. #define IP_2PTRN    2
  66. #define IP_3PTRN    3
  67. #define IP_4PTRN    4
  68. #define IP_5PTRN    5
  69. #define IP_6PTRN    6
  70. #define IP_SOLID    7
  71.                                /* VDI normal graphics drawing modes */
  72. #define MD_REPLACE  1
  73. #define MD_TRANS    2
  74. #define MD_XOR      3
  75. #define MD_ERASE    4
  76.                                /* VDI bit blt rules */
  77. #define ALL_WHITE   0
  78. #define S_AND_D     1
  79. #define S_AND_NOTD  2
  80. #define S_ONLY      3
  81. #define NOTS_AND_D  4
  82. #define D_ONLY      5
  83. #define S_XOR_D     6
  84. #define S_OR_D      7
  85. #define NOT_SORD    8
  86. #define NOT_SXORD   9
  87. #define D_INVERT    10
  88. #define NOT_D       10
  89. #define S_OR_NOTD   11
  90. #define NOT_S       12
  91. #define NOTS_OR_D   13
  92. #define NOT_SANDD   14
  93. #define ALL_BLACK   15
  94.                                     /* font types */
  95. #define IBM         3
  96. #define SMALL       5
  97.                                     /* evnt_multi options */
  98. #define MU_KEYBD    0x0001
  99. #define MU_BUTTON   0x0002
  100. #define MU_M1       0x0004
  101. #define MU_M2       0x0008
  102. #define MU_MESAG    0x0010
  103. #define MU_TIMER    0x0020
  104.                                     /* evnt_mouse options */
  105. #define MU_MENTRY   0x0000
  106. #define MU_MEXIT    0x0001
  107.                                     /* keyboard states */
  108. #define K_RSHIFT    0x0001
  109. #define K_LSHIFT    0x0002
  110. #define K_CTRL      0x0004
  111. #define K_ALT       0x0008
  112.                                     /* event message values */
  113. #define MN_SELECTED 10
  114. #define WM_REDRAW   20
  115. #define WM_TOPPED   21
  116. #define WM_CLOSED   22
  117. #define WM_FULLED   23
  118. #define WM_ARROWED  24
  119. #define WM_HSLID    25
  120. #define WM_VSLID    26
  121. #define WM_SIZED    27
  122. #define WM_MOVED    28
  123. #define WM_NEWTOP   29
  124. #define AC_OPEN     40
  125. #define AC_CLOSE    41
  126.                                     /* form_dial opcodes */
  127. #define FMD_START   0
  128. #define FMD_GROW    1
  129. #define FMD_SHRINK  2
  130. #define FMD_FINISH  3
  131.                                     /* rsrc_gaddr structure types */
  132. #define ROOT        0               /* this name used by MWC */
  133. #define R_TREE      0
  134. #define R_OBJECT    1
  135. #define R_TEDINFO   2
  136. #define R_ICONBLK   3
  137. #define R_BITBLK    4
  138. #define R_STRING    5
  139. #define R_IMAGEDATA 6
  140. #define R_OBSPEC    7
  141. #define R_TEPTEXT   8
  142. #define R_TEPTMPLT  9
  143. #define R_TEPVALID  10
  144. #define R_IBPMASK   11
  145. #define R_IBPDATA   12
  146. #define R_IBPTEXT   13
  147. #define R_BIPDATA   14
  148. #define R_FRSTR     15
  149. #define R_FRIMG     16
  150.                                     /* Window Attributes */
  151. #define NAME        0x0001
  152. #define CLOSER      0x0002
  153. #define FULLER      0x0004
  154. #define MOVER       0x0008
  155. #define INFO        0x0010
  156. #define SIZER       0x0020
  157. #define UPARROW     0x0040
  158. #define DNARROW     0x0080
  159. #define VSLIDE      0x0100
  160. #define LFARROW     0x0200
  161. #define RTARROW     0x0400
  162. #define HSLIDE      0x0800
  163.                                     /* wind_calc options */
  164. #define WC_BORDER   0
  165. #define WC_WORK     1
  166.                                     /* wind_get options */
  167. #define WF_KIND     1
  168. #define WF_NAME     2
  169. #define WF_INFO     3
  170. #define WF_WORKXYWH 4
  171. #define WF_CURRXYWH 5
  172. #define WF_PREVXYWH 6
  173. #define WF_FULLXYWH 7
  174. #define WF_HSLIDE   8
  175. #define WF_VSLIDE   9
  176. #define WF_TOP      10
  177. #define WF_FIRSTXYWH 11
  178. #define WF_NEXTXYWH 12
  179. #define WF_RESVD    13
  180. #define WF_NEWDESK  14
  181. #define WF_HSLSIZE  15
  182. #define WF_VSLSIZE  16
  183. #define WF_SCREEN   17
  184.                                     /* wind_update options */
  185. #define END_UPDATE  0
  186. #define BEG_UPDATE  1
  187. #define END_MCTRL   2
  188. #define BEG_MCTRL   3
  189.                                     /* graf_mouse mouse types*/
  190. #define ARROW           0
  191. #define TEXT_CRSR       1
  192. #define HOURGLASS       2           /* this name used by MWC */
  193. #define BUSYBEE         2           /* because I always forget the underbar */
  194. #define BUSY_BEE        2
  195. #define BEE             2
  196. #define POINT_HAND      3
  197. #define FLAT_HAND       4
  198. #define THIN_CROSS      5
  199. #define THICK_CROSS     6
  200. #define OUTLN_CROSS     7
  201. #define USER_DEF        255
  202. #define M_OFF           256
  203. #define M_ON            257
  204.                                 /* max depth of search or draw  */
  205. #define MAX_DEPTH   8
  206.                                 /* value returned by objc_find(), et. al. */
  207. #define NO_OBJECT   -1
  208.                                 /* object types */
  209. #define G_BOX       20
  210. #define G_TEXT      21
  211. #define G_BOXTEXT   22
  212. #define G_IMAGE     23
  213. #define G_USERDEF   24
  214. #define G_PROGDEF   24
  215. #define G_IBOX      25
  216. #define G_BUTTON    26
  217. #define G_BOXCHAR   27
  218. #define G_STRING    28
  219. #define G_FTEXT     29
  220. #define G_FBOXTEXT  30
  221. #define G_ICON      31
  222. #define G_TITLE     32
  223.                                 /* object options */
  224. #define NONE        0x0000
  225. #define SELECTABLE  0x0001
  226. #define DEFAULT     0x00